Skip to content

feat(tasks): add calendar view for tasks (month / week / day)#178

Open
paryanineil wants to merge 1 commit into
bwhtech:developfrom
paryanineil:feat/task-calendar-view
Open

feat(tasks): add calendar view for tasks (month / week / day)#178
paryanineil wants to merge 1 commit into
bwhtech:developfrom
paryanineil:feat/task-calendar-view

Conversation

@paryanineil

Copy link
Copy Markdown

Summary

Adds a Calendar view to the Tasks page, alongside the existing List and Kanban views. Tasks are laid out by their due_date, with Month, Week, and Day sub-modes.

What's included

  • TaskCalendar component (frontend/src/components/TaskCalendar.tsx)
    • Month — full 6-week grid, status-colored task chips, +N more overflow per day
    • Week — 7 day-columns listing each day's tasks
    • Day — single-day agenda with status + priority
    • Mode-aware prev / next / Today navigation and today highlighting
    • A "No due date" tray so tasks without a due date are never hidden
    • Built with date-fns (already a dependency) and shadcn Button / Badge
  • View switcher — calendar toggle added next to List/Kanban on the Tasks page
  • Saveable view — adds calendar to Hive View.view_type; the mode is restored from saved views and the sidebar

Notes

  • Additive only — no changes to existing List/Kanban behavior and no backend API changes. The single backend change is a new option on the existing Hive View.view_type Select field (listlist\nkanban\ncalendar).
  • Existing task filters (status / priority / project / assignee) apply to the calendar, same as the other views.
  • Clicking a task opens the existing Task Details sheet.

Testing

  • yarn build passes, tsc --noEmit clean, ESLint clean on the new component
  • Verified in-browser against a seeded dataset: tasks render on their due dates across all three modes, navigation + today highlight work, clicking a task opens its detail sheet, and undated tasks appear in the tray. No console errors.

Adds a third view mode to the Tasks page (alongside list and kanban)
that lays tasks out on a calendar by their due date, with Month, Week,
and Day sub-modes.

- New TaskCalendar component with Month / Week / Day switcher:
  - Month: full 6-week grid with "+N more" overflow per day
  - Week: 7-day columns listing that day's tasks
  - Day: single-day agenda with status and priority
  - Mode-aware prev/next/today navigation, today highlighting, and a
    tray listing tasks with no due date so none are hidden
- Calendar toggle button added to the Tasks view switcher
- Saveable as a named view: adds "calendar" to Hive View.view_type and
  restores the mode from saved views and the sidebar

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@NagariaHussain

Copy link
Copy Markdown
Contributor

Can you please add screenshots / demo video?

@paryanineil

Copy link
Copy Markdown
Author

Thanks for taking a look! Screenshots of the three calendar modes below (seeded demo data):

Month

Calendar — Month view

Week

Calendar — Week view

Day

Calendar — Day view

All three modes share the prev / next / Today navigation, today highlighting, and a "No due date" tray so undated tasks aren't hidden. The existing status / priority / project / assignee filters apply to the calendar, and clicking any task opens the existing Task Details sheet.

Happy to record a short screen-capture video as well if that would be more useful.

@paryanineil

Copy link
Copy Markdown
Author

Note on the red Playwright E2E check — the two failures (project-types › should delete a project type and task-pinning › pin via detail sheet) look like pre-existing flakes on develop, not something introduced here:

  • The ui-tests.yml workflow is currently failing on develop itself — including the run on 498f774 (the base commit of this PR) — on the same two tests.
  • This change is additive to the Tasks calendar view and doesn't touch Settings / project types or the task-pinning logic.
  • The Server, Frappe Linter, and Vulnerable Dependency Check jobs are all green.

A re-run should clear those two. Happy to dig into the flakes separately if that's useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants